#ifndef MAINWIDGET_H
#define MAINWIDGET_H

#include <QWidget>
#include <QPushButton>
#include <QLineEdit>

#include "sessionfriendarea.h"

QT_BEGIN_NAMESPACE
namespace Ui {
class MainWidget;
}
QT_END_NAMESPACE



class MainWidget : public QWidget
{
    Q_OBJECT

    //当前的页面类型
    enum ActiveTab
    {
        SESSION_TAB,
        FRIEND_TAB,
        GROUPCHAT_TAB
    };

public:
    ~MainWidget();
    static MainWidget* getInstance(); 
private:
    Ui::MainWidget *ui;
    static MainWidget* instance;
    MainWidget(QWidget *parent = nullptr);  //限制别人构造

    //界面初始化函数
    void mainWindowInit();
    void leftWindowInit();
    void midWindowInit();
    void rightWindowInit();
    // 信号槽连接
    void establishConnection();

    //界面布局
    QWidget* leftWindow;
    QWidget* midWindow;
    QWidget* rightWindow;
public:
    //left layout
    QPushButton* avatarBtn;  //头像
    QPushButton* sessionTabBtn; //会话按钮
    QPushButton* friendTabBtn;  //好友按钮
    QPushButton* groupChatTabBtn; //群聊按钮
    ActiveTab active = SESSION_TAB; //当前所在的页面
    void sessionChange();
    void friendChange();
    void groupChatChange();
    //加载数据
    void loadSessionList();
    void loadFriendList();
    void loadGrioupChatList();

    //mid layout
    QLineEdit* search; //搜索框
    QPushButton* addUserBtn; //添加好友按钮
    SessionFriendArea* sessionFriendArea;

    //right layout
    QPushButton* extendBtn; // ...

};
#endif // MAINWIDGET_H
